package com.xbongbong.saas.model;

import com.xbongbong.paas.pojo.vo.CallCenterOrgGetByCorpIdVO;
import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.paas.toolbox.wrap.IModel;
import com.xbongbong.saas.domain.entity.CallCenterOrganizationEntity;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * @author youli.chen
 * @version v1.0
 * @description: TODO
 * @date 2019/2/13 16:53
 * @since v1.0
 */
public interface CallCenterOrganizationModel extends IModel<CallCenterOrganizationEntity> {

    /**
     * 根据主键和公司id进行删除
     *
     * @param key    主键
     * @param corpid 公司id
     *
     * @return Integer MyBatis操作结果 1：成功
     */
    Integer deleteByKey(Long key, String corpid);

    /**
     * 根据主键和公司id进行精准查找
     *
     * @param key    主键
     * @param corpid 公司id
     *
     * @return CallCenterOrganizationEntity 话务中心企业信息
     */
    CallCenterOrganizationEntity getByKey(Long key, String corpid);

    /**
     * 获取开启了呼叫中心的公司id队列
     *
     * @param params 封装的条件
     *
     * @return List<String> 公司id队列
     * @author youli.chen
     * @version v1.0
     * @since v1.0
     */
    List<String> findCorps(Map<String, Object> params);

    /**
     * 获取开启了呼叫中心的公司总数
     *
     * @return Integer 总数
     * @author youli.chen
     * @version v1.0
     * @since v1.0
     */
    Integer getCorpsCount();

    /**
     * 更新企业的预充值余额
     * @param corpid 公司ID
     * @param moduleType 话务中心平台  参考CallCenterTypeEnum
     * @param balance  预充值余额
     */
    void updateBalance(String corpid, Integer moduleType, BigDecimal balance);

    /**
     * 
     * @param corpid
     * @param moduleType
     * @return com.xbongbong.paas.pojo.vo.CallCenterOrgGetByCorpIdVO
     * @author 吴峰
     * @date 2021/12/20 17:20
     * @throws XbbException       
     */
    CallCenterOrgGetByCorpIdVO getByCorpId(String corpid, Integer moduleType) throws XbbException;
}
